#ifndef ONLINE_USERS_H
#define ONLINE_USERS_H

#include <stdint.h>
#include <pthread.h>

// 在线用户结构体
typedef struct OnlineUser {
    uint32_t user_id;        // 用户ID
    const char* nickname;    // 用户名
    struct OnlineUser* next; // 下一个用户
} OnlineUser;


// 在线用户列表
typedef struct {
    OnlineUser* users;
    uint32_t count;  // 用户数量
} OnlineUserList;

// 全局在线用户链表及互斥锁
extern OnlineUser* g_online_users;
extern pthread_mutex_t g_online_users_mutex;

// 初始化在线用户管理
void online_users_init(void);

// 清空在线用户列表
void online_users_clear(void);

// 添加用户到在线列表
void online_users_add(uint32_t user_id, const char* nickname);

// 从在线列表移除用户
void online_users_remove(uint32_t user_id);

// 销毁在线用户管理
void online_users_destroy(void);

#endif